Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

examples/simple_room_server/main.cpp HEAD (0679dbef) Text, 3.78 KB

Tff7b72#Tff7b72include T8b949e<Arduino.h> T8b949e// needed for PlatformIO
Tff7b72#Tff7b72include T8b949e<Mesh.h>

Tff7b72#Tff7b72include T8b949e"MyMesh.h"

Tff7b72#Tff7b72ifdef ETHERNET_ENABLED
Tff7b72#Tff7b72define ETHERNET_CLI_BANNER "MeshCore Room Server CLI"
Tff7b72#Tff7b72include T8b949e<helpers/nrf52/EthernetCLI.h>
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifdef DISPLAY_CLASS
Tff7b72#Tff7b72include T8b949e"UITask.h"
Tff7b72static Te6edf3UITask Td2a8ffui_taskTb4b4b4(Te6edf3displayTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif

Te6edf3StdRNG Te6edf3fast_rngTb4b4b4;
Te6edf3SimpleMeshTables Te6edf3tablesTb4b4b4;
Te6edf3MyMesh Td2a8ffthe_meshTb4b4b4(Te6edf3boardTb4b4b4, Te6edf3radio_driverTb4b4b4, Tff7b72*Tff7b72new Te6edf3ArduinoMillisTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3fast_rngTb4b4b4, Te6edf3rtc_clockTb4b4b4, Te6edf3tablesTb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffhaltTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72while Tb4b4b4(T79c0ff1Tb4b4b4) Tb4b4b4;
Tb4b4b4}

Tff7b72static Tffa657char Te6edf3commandTb4b4b4[Te6edf3MAX_POST_TEXT_LENTff7b72+T79c0ff1Tb4b4b4]Tb4b4b4;
Tff7b72#Tff7b72ifdef ETHERNET_ENABLED
Tff7b72static Tffa657char Te6edf3ethernet_commandTb4b4b4[Te6edf3MAX_POST_TEXT_LENTff7b72+T79c0ff1Tb4b4b4]Tb4b4b4;
Tff7b72#Tff7b72endif

Tffa657void Td2a8ffsetupTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3SerialTb4b4b4.Te6edf3beginTb4b4b4(T79c0ff115200Tb4b4b4)Tb4b4b4;
Te6edf3delayTb4b4b4(T79c0ff1000Tb4b4b4)Tb4b4b4;

Te6edf3boardTb4b4b4.Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;

Tff7b72#Tff7b72ifdef HAS_EXTERNAL_WATCHDOG
Te6edf3external_watchdogTb4b4b4.Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifdef DISPLAY_CLASS
Tff7b72if Tb4b4b4(Te6edf3displayTb4b4b4.Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3startFrameTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3setCursorTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3printTb4b4b4(Ta5d6ff"Ta5d6ffPlease wait...Ta5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3endFrameTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72#Tff7b72endif

Tff7b72if Tb4b4b4(Tff7b72!Te6edf3radio_initTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{ Te6edf3haltTb4b4b4(Tb4b4b4)Tb4b4b4; Tb4b4b4}

Te6edf3fast_rngTb4b4b4.Te6edf3beginTb4b4b4(Te6edf3radio_driverTb4b4b4.Te6edf3getRngSeedTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;

Te6edf3FILESYSTEMTff7b72* Te6edf3fsTb4b4b4;
Tff7b72#Tff7b72if defined(NRF52_PLATFORM)
Te6edf3InternalFSTb4b4b4.Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3fs Tff7b72= Tff7b72&Te6edf3InternalFSTb4b4b4;
Te6edf3IdentityStore Te6edf3storeTb4b4b4(Te6edf3InternalFSTb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72elif defined(RP2040_PLATFORM)
Te6edf3LittleFSTb4b4b4.Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3fs Tff7b72= Tff7b72&Te6edf3LittleFSTb4b4b4;
Te6edf3IdentityStore Te6edf3storeTb4b4b4(Te6edf3LittleFSTb4b4b4, Ta5d6ff"Ta5d6ff/identityTa5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3storeTb4b4b4.Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72elif defined(ESP32)
Te6edf3SPIFFSTb4b4b4.Te6edf3beginTb4b4b4(Tffa657trueTb4b4b4)Tb4b4b4;
Te6edf3fs Tff7b72= Tff7b72&Te6edf3SPIFFSTb4b4b4;
Te6edf3IdentityStore Te6edf3storeTb4b4b4(Te6edf3SPIFFSTb4b4b4, Ta5d6ff"Ta5d6ff/identityTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72else
Tff7b72#Tff7b72error "need to define filesystem"
Tff7b72#Tff7b72endif
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3storeTb4b4b4.Te6edf3loadTb4b4b4(Ta5d6ff"Ta5d6ff_mainTa5d6ff"Tb4b4b4, Te6edf3the_meshTb4b4b4.Te6edf3self_idTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3the_meshTb4b4b4.Te6edf3self_id Tff7b72= Te6edf3radio_new_identityTb4b4b4(Tb4b4b4)Tb4b4b4; T8b949e// create new random identity
Tffa657int Te6edf3count Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3count Tff7b72< T79c0ff10 Tff7b72&Tff7b72& Tb4b4b4(Te6edf3the_meshTb4b4b4.Te6edf3self_idTb4b4b4.Te6edf3pub_keyTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72=Tff7b72= T79c0ff0x00 Tff7b72|Tff7b72| Te6edf3the_meshTb4b4b4.Te6edf3self_idTb4b4b4.Te6edf3pub_keyTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72=Tff7b72= T79c0ff0xFFTb4b4b4)Tb4b4b4) Tb4b4b4{ T8b949e// reserved id hashes
Te6edf3the_meshTb4b4b4.Te6edf3self_id Tff7b72= Te6edf3radio_new_identityTb4b4b4(Tb4b4b4)Tb4b4b4; Te6edf3countTff7b72+Tff7b72+Tb4b4b4;
Tb4b4b4}
Te6edf3storeTb4b4b4.Te6edf3saveTb4b4b4(Ta5d6ff"Ta5d6ff_mainTa5d6ff"Tb4b4b4, Te6edf3the_meshTb4b4b4.Te6edf3self_idTb4b4b4)Tb4b4b4;
Tb4b4b4}

Te6edf3SerialTb4b4b4.Te6edf3printTb4b4b4(Ta5d6ff"Ta5d6ffRoom ID: Ta5d6ff"Tb4b4b4)Tb4b4b4;
Te6edf3meshTff7b72:Tff7b72:Te6edf3UtilsTff7b72:Tff7b72:Te6edf3printHexTb4b4b4(Te6edf3SerialTb4b4b4, Te6edf3the_meshTb4b4b4.Te6edf3self_idTb4b4b4.Te6edf3pub_keyTb4b4b4, Te6edf3PUB_KEY_SIZETb4b4b4)Tb4b4b4; Te6edf3SerialTb4b4b4.Te6edf3printlnTb4b4b4(Tb4b4b4)Tb4b4b4;

Te6edf3commandTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72#Tff7b72ifdef ETHERNET_ENABLED
Te6edf3ethernet_commandTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72#Tff7b72endif

Te6edf3sensorsTb4b4b4.Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;

Te6edf3the_meshTb4b4b4.Te6edf3beginTb4b4b4(Te6edf3fsTb4b4b4)Tb4b4b4;

Tff7b72#Tff7b72ifdef DISPLAY_CLASS
Te6edf3ui_taskTb4b4b4.Te6edf3beginTb4b4b4(Te6edf3the_meshTb4b4b4.Te6edf3getNodePrefsTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3FIRMWARE_BUILD_DATETb4b4b4, Te6edf3FIRMWARE_VERSIONTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifdef ETHERNET_ENABLED
Te6edf3ethernet_start_taskTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif

T8b949e// send out initial zero hop Advertisement to the mesh
Tff7b72#Tff7b72if ENABLE_ADVERT_ON_BOOT == 1
Te6edf3the_meshTb4b4b4.Te6edf3sendSelfAdvertisementTb4b4b4(T79c0ff16000Tb4b4b4, Tffa657falseTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif

Te6edf3boardTb4b4b4.Te6edf3onBootCompleteTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffloopTb4b4b4(Tb4b4b4) Tb4b4b4{
Tffa657int Te6edf3len Tff7b72= Te6edf3strlenTb4b4b4(Te6edf3commandTb4b4b4)Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3SerialTb4b4b4.Te6edf3availableTb4b4b4(Tb4b4b4) Tff7b72&Tff7b72& Te6edf3len Tff7b72< Tff7b72sizeofTb4b4b4(Te6edf3commandTb4b4b4)T79c0ff-1Tb4b4b4) Tb4b4b4{
Tffa657char Te6edf3c Tff7b72= Te6edf3SerialTb4b4b4.Te6edf3readTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3c Tff7b72!Tff7b72= Ta5d6ff'Ta5d6ff\nTa5d6ff'Tb4b4b4) Tb4b4b4{
Te6edf3commandTb4b4b4[Te6edf3lenTff7b72+Tff7b72+Tb4b4b4] Tff7b72= Te6edf3cTb4b4b4;
Te6edf3commandTb4b4b4[Te6edf3lenTb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}
Te6edf3SerialTb4b4b4.Te6edf3printTb4b4b4(Te6edf3cTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3len Tff7b72=Tff7b72= Tff7b72sizeofTb4b4b4(Te6edf3commandTb4b4b4)T79c0ff-1Tb4b4b4) Tb4b4b4{ T8b949e// command buffer full
Te6edf3commandTb4b4b4[Tff7b72sizeofTb4b4b4(Te6edf3commandTb4b4b4)T79c0ff-1Tb4b4b4] Tff7b72= Ta5d6ff'Ta5d6ff\rTa5d6ff'Tb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(Te6edf3len Tff7b72> T79c0ff0 Tff7b72&Tff7b72& Te6edf3commandTb4b4b4[Te6edf3len Tff7b72- T79c0ff1Tb4b4b4] Tff7b72=Tff7b72= Ta5d6ff'Ta5d6ff\rTa5d6ff'Tb4b4b4) Tb4b4b4{ T8b949e// received complete line
Te6edf3commandTb4b4b4[Te6edf3len Tff7b72- T79c0ff1Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4; T8b949e// replace newline with C string null terminator
Tffa657char Te6edf3replyTb4b4b4[T79c0ff160Tb4b4b4]Tb4b4b4;
Te6edf3replyTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72#Tff7b72ifdef ETHERNET_ENABLED
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3ethernet_handle_commandTb4b4b4(Te6edf3commandTb4b4b4, Te6edf3replyTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3the_meshTb4b4b4.Te6edf3handleCommandTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3commandTb4b4b4, Te6edf3replyTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72#Tff7b72else
Te6edf3the_meshTb4b4b4.Te6edf3handleCommandTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3commandTb4b4b4, Te6edf3replyTb4b4b4)Tb4b4b4; T8b949e// NOTE: there is no sender_timestamp via serial!
Tff7b72#Tff7b72endif
Tff7b72if Tb4b4b4(Te6edf3replyTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3SerialTb4b4b4.Te6edf3printTb4b4b4(Ta5d6ff"Ta5d6ff -> Ta5d6ff"Tb4b4b4)Tb4b4b4; Te6edf3SerialTb4b4b4.Te6edf3printlnTb4b4b4(Te6edf3replyTb4b4b4)Tb4b4b4;
Tb4b4b4}

Te6edf3commandTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4; T8b949e// reset command buffer
Tb4b4b4}

Tff7b72#Tff7b72ifdef ETHERNET_ENABLED
Te6edf3ethernet_loop_maintainTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ethernet_read_lineTb4b4b4(Te6edf3ethernet_commandTb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3ethernet_commandTb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tffa657char Te6edf3replyTb4b4b4[T79c0ff160Tb4b4b4]Tb4b4b4;
Te6edf3replyTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3ethernet_handle_commandTb4b4b4(Te6edf3ethernet_commandTb4b4b4, Te6edf3replyTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3the_meshTb4b4b4.Te6edf3handleCommandTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3ethernet_commandTb4b4b4, Te6edf3replyTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3ethernet_send_replyTb4b4b4(Te6edf3replyTb4b4b4)Tb4b4b4;
Te6edf3ethernet_commandTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72#Tff7b72endif

Te6edf3the_meshTb4b4b4.Te6edf3loopTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3sensorsTb4b4b4.Te6edf3loopTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72ifdef DISPLAY_CLASS
Te6edf3ui_taskTb4b4b4.Te6edf3loopTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif
Te6edf3rtc_clockTb4b4b4.Te6edf3tickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72ifdef HAS_EXTERNAL_WATCHDOG
Te6edf3external_watchdogTb4b4b4.Te6edf3loopTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.07s